import json
from pyecharts.charts import Line
import pyecharts.options as opts


# 读取文件获取json数据
def read_json(file_path):
    f = None
    content_str = ''
    try:
        f = open(file_path, 'r', encoding="UTF-8")
        content_str = f.read()
    except Exception as e:
        print(e, '文件路径不存在')
    finally:
        if f:
            f.close()
    return content_str


# 读取文件内容
us_data = read_json('/Users/yanfeixingsan/Documents/进阶之路/python/test/可视化案例数据/折线图数据/美国.txt')
jp_data = read_json('/Users/yanfeixingsan/Documents/进阶之路/python/test/可视化案例数据/折线图数据/日本.txt')
in_data = read_json('/Users/yanfeixingsan/Documents/进阶之路/python/test/可视化案例数据/折线图数据/印度.txt')

# 去掉不和 json 规范的开头和结尾
us_data = us_data.replace('jsonp_1629344292311_69436(', '')
jp_data = jp_data.replace('jsonp_1629350871167_29498(', '')
in_data = in_data.replace('jsonp_1629350745930_63180(', '')
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]

# 数据转为 字典
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)
# 获取 key为 trend 的数据
us_trend_data = us_dict['data'][0]['trend']
jp_trend_data = jp_dict['data'][0]['trend']
in_trend_data = in_dict['data'][0]['trend']

# 获取日期数据 用于 x 轴， 取2020年 （到314下标结束）
us_x_data = us_trend_data['updateDate'][:314]
# 获取确认数据 用于 y 轴， 取2020年 （到314下标结束）
us_y_data = us_trend_data['list'][0]["data"][:314]
jp_y_data = jp_trend_data['list'][0]["data"][:314]
in_y_data = in_trend_data['list'][0]["data"][:314]

line = Line()
line.add_xaxis(us_x_data)  # 因为x轴数据都一样用一份就行
line.add_yaxis('美国确认人数', us_y_data, label_opts=opts.LabelOpts(is_show=False))
line.add_yaxis('日本确认人数', jp_y_data, label_opts=opts.LabelOpts(is_show=False))
line.add_yaxis('印度确认人数', in_y_data, label_opts=opts.LabelOpts(is_show=False))

line.set_global_opts(
    title_opts=opts.TitleOpts(title='美日印2020年疫情确诊折线图', pos_left='center', pos_bottom='1%')
)

line.render(path='美日印2020年疫情确诊折线图.html')
